﻿//1838. 最高频元素的频数
//元素的 频数 是该元素在一个数组中出现的次数。
//给你一个整数数组 nums 和一个整数 k 。在一步操作中，你可以选择 nums 的一个下标，并将该下标对应元素的值增加 1 。
//执行最多 k 次操作后，返回数组中最高频元素的 最大可能频数 。



class Solution {
public:
    int maxFrequency(vector<int>& nums, int k)
    {
        sort(nums.begin(), nums.end());
        int begin = 0, end = -1;
        int len = 1;
        long long sum = 0;
        for (end = 1; end < nums.size(); end++)
        {
            if (end) sum = sum + 1L * (nums[end] - nums[end - 1]) * (end - begin);
            while (sum > k)
            {
                sum -= (nums[end] - nums[begin]);
                begin++;
            }
            len = max(len, end - begin + 1);
        }
        return len;
    }
};